博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
高级参数绑定(数组和List绑定)
阅读量:5888 次
发布时间:2019-06-19

本文共 3228 字,大约阅读时间需要 10 分钟。

1.绑定数组:

(1) 需求

在商品列表页面选中多个商品,然后删除。

(2). 需求分析

功能要求商品列表页面中的每个商品前有一个checkbok,选中多个商品后点击删除按钮把商品id传递给Controller,根据商品id删除商品信息。

我们演示可以获取id的数组即可

(4). Jsp修改

修改itemList.jsp页面,增加多选框,提交url是queryItem.action

查询条件:
商品id 商品名称
商品列表:
选择 商品名称 商品价格 生产日期 商品描述 操作
${item.name } ${item.price }
${item.detail } 修改

页面选中多个checkbox向controller方法传递

本身属于一个form表单,提交url是queryItem.action

(4) Controller

Controller方法中可以用String[]接收,或者pojo的String[]属性接收。两种方式任选其一即可。

定义QueryVo,如下图:

 

 

ItemController修改queryItem方法:

/** * 包装类型 绑定数组类型,可以使用两种方式,pojo的属性接收,和直接接收 *  * @param queryVo * @return */@RequestMapping("queryItem")public String queryItem(QueryVo queryVo, Integer[] ids) {    System.out.println(queryVo.getItem().getId());    System.out.println(queryVo.getItem().getName());    System.out.println(queryVo.getIds().length);    System.out.println(ids.length);    return "success";}

 

 

效果,如下图:

 

 

 

2. 将表单的数据绑定到List

(1) 需求

实现商品数据的批量修改。

 

(2). 开发分析

开发分析

1. 在商品列表页面中可以对商品信息进行修改。

2. 可以批量提交修改后的商品数据。

 

(3). 定义pojo

List中存放对象,并将定义的List放在包装类QueryVo中

使用包装pojo对象接收,如下图:

 

 

 

(4)JSP改造

前端页面应该显示的html代码,如下图:

 

 

 

分析发现:name属性必须是list属性名+下标+元素属性。

Jsp做如下改造:

"/>
修改

${current} 当前这次迭代的(集合中的)项

${status.first}   判断当前项是否为集合中的第一项,返回值为true或false

${status.last}    判断当前项是否为集合中的最

varStatus属性常用参数总结下:

${status.index}   输出行号,从0开始。

${status.count}   输出行号,从1开始。

${status.后一项,返回值为true或false

begin、end、step分别表示:起始序号,结束序号,跳跃步伐。

 

1.1.1. 效果

这里只演示List的绑定,能够接收到list数据。

可以拿到数据即可,不做数据库的操作。

 

测试效果如下图:

 

 

注意:接收List类型的数据必须是pojo的属性,如果方法的形参为ArrayList类型无法正确接收到数据。

 

 

 

 

例如:采用下面方式传递list集合

package cn.xm.jwxt.queryVo;import cn.xm.jwxt.bean.trainScheme.Trainningcapacitybaseinfo;import java.util.List;/** * @Author: qlq * @Description 接收list参数的vo * @Date: 17:56 2018/5/2 */public class ListVo {    /**     * 接收培养方案能力集合     */    private List
trainningcapacitybaseinfos; public List
getTrainningcapacitybaseinfos() { return trainningcapacitybaseinfos; } public void setTrainningcapacitybaseinfos(List
trainningcapacitybaseinfos) { this.trainningcapacitybaseinfos = trainningcapacitybaseinfos; }}

 

package cn.xm.jwxt.bean.trainScheme;public class Trainningcapacitybaseinfo {    private Integer capacityid;    private String trainingschemeid;    private String capacitysort;    private String capacityname;    private String capacitydescription;    private String remark;        ...get set... }

 

 

Controller代码:

@RequestMapping("/addTrainScheme")//保存培养方案基本信息和培养方案能力信息    public String addTrainschemeinfo(Trainschemeinfo trainschemeinfo, ListVo listVo){        String result = null;        try {//            result = trainschemeinfoService.addTrainschemeinfo(trainschemeinfo, trainningcapacitybaseinfos)?"添加成功":"添加失败";        } catch (Exception e) {            result="添加失败";            logger.error("插入培养方案出错!",e);        }        return result;    }

 

 

前台传的数据格式:

 

转载地址:http://fkgix.baihongyu.com/

你可能感兴趣的文章
面试之Java知识整理
查看>>
Convert.ToInt32(),Int.Parse(),Int.TryParse()的区别
查看>>
基于udp的scoket通信
查看>>
(转载)屌丝从毕业时的月入3000到三年后亿万身家的精彩励志之旅
查看>>
大白话5分钟带你走进人工智能-目录
查看>>
iOS推送消息报错误“Domain=NSCocoaErrorDomain Code=3000”的可能问题
查看>>
JavaScript获取页面宽高度的方法
查看>>
找不到方法:“Boolean System.Runtime.Serialization.DataContractAttribute.get_IsReference()”
查看>>
eclipse启动时提示"Failed to load the jni shared library"
查看>>
Android开发指南(30) —— Multimedia and Camera
查看>>
kvm-1
查看>>
Jmeter的接口测试简介
查看>>
第二阶段冲刺03
查看>>
hdu1045 Fire Net---二进制枚举子集
查看>>
drupal网站邮件发送功能的实现
查看>>
leetcode 64. Minimum Path Sum
查看>>
查看表空间数据文件
查看>>
Linux输入输出管理
查看>>
zabbix监控系统的配置
查看>>
SQL Server Management Studio(SSMS)修复来解决SSMS找不到的问题
查看>>